<!DOCTYPE html>
<html>
  <head>
    <title>Cathode Retro Docs</title>
    <link href="../../docs.css" rel="stylesheet">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" charset="UTF-8">
    <script src="../../main-scripts.js"></script>
  </head>
  <body onload="OnLoad()" class="page">
    <header class="header"><button id="sidebar-button"></button></header>
    <div id="sidebar-container" class="sidebar-container"><iframe class="sidebar-frame" src="../../sidebar.html?page=shader-reference-decoder-filter-rgb"></iframe></div>
    <div id="content-outer" class="content-outer">
      <main>
        <h1>decoder-filter-rgb</h1>
        <p>
          This shader does a horizontal three-tap blur or sharpen to each input scanline.
        </p>
        <h2>Index</h2>
        <div class="index">
          <h3>Input Textures/Samplers</h3>
          <nav>
            <menu>
              <li><a href="#g_sourceTexture">g_sourceTexture</a></li>
              <li><a href="#g_sampler">g_sampler</a></li>
            </menu>
          </nav>
          <h3>Uniform Buffer Values</h3>
          <nav>
            <menu>
              <li><a href="#g_blurStrength">g_blurStrength</a></li>
              <li><a href="#g_stepSize">g_stepSize</a></li>
            </menu>
          </nav>
        </div>
        <h2>Input Textures/Samplers</h2>
        <dl class="member-list">
          <dt id="g_sourceTexture">g_sourceTexture</dt>
          <dd>
            <div class="code-definition syntax-hlsl">
              <pre>
                g_sourceTexture
              </pre>
            </div>
            <h5>Type</h5>
            <section>
              <code>texture</code> (platform-specific)
            </section>
            <h5>Description</h5>
            <section>
              The texture to sample.
            </section>
          </dd>
          <dt id="g_sampler">g_sampler</dt>
          <dd>
            <div class="code-definition syntax-hlsl">
              <pre>
                g_sampler
              </pre>
            </div>
            <h5>Type</h5>
            <section>
              <code>sampler</code> (platform-specific, does not exist on some platforms)
            </section>
            <h5>Description</h5>
            <section>
              The sampler to use to sample <a href="#g_sourceTexture">g_sourceTexture</a>.
            </section>
          </dd>
        </dl>
        <h2>Uniform Buffer Values</h2>
        <dl class="member-list">
          <dt id="g_blurStrength">g_blurStrength</dt>
          <dd>
            <div class="code-definition syntax-hlsl">
              <pre>
                float g_blurStrength
              </pre>
            </div>
            <h5>Type</h5>
            <section>
              <code>float</code>
            </section>
            <h5>Description</h5>
            <section>
              This is the strength of the blur - <code>0.0</code> will leave the output texture unchanged from the input, 
              <code>1.0</code> will do a full 3-texel average, and <code>-1</code> will do a full sharpen.
            </section>
          </dd>
          <dt id="g_stepSize">g_stepSize</dt>
          <dd>
            <div class="code-definition syntax-hlsl">
              <pre>
                float g_stepSize
              </pre>
            </div>
            <h5>Type</h5>
            <section>
              <code>float</code>
            </section>
            <h5>Description</h5>
            <section>
              The step between each sample, in texels. Usually scaled to be relative to the original input, which may have had a
              different resolution than our input texture due to the NTSC generation/decode process (if there's no original
              input, i.e. we're not using the NTSC signal generator and have gotten a signal straight from a real NTSC signal,
              then you'd just want to pick some nice-on-average value instead, possibly the width of the colorburst).
            </section>
          </dd>
        </dl>
      </main>
    </div>
  </body>
</html>